.myCoupons {
    .couponInputContainer {
        display: flex;
        padding: 15px;
        background: #fff;
        gap: 8px;
        align-items: center;

        .couponInput {
            flex: 1;
            border: 1px solid #eee;
            border-radius: 4px;
            padding: 6px 10px;
            height: 32px;
            line-height: 32px;
            font-size: 14px;
        }

        .scanBtn {
            width: 50px;
            height: 32px;
            line-height: 32px;
            background: #1989fa;
            color: #fff;
            border: none;
            border-radius: 4px;
            font-size: 12px;
            padding: 0;
        }

        .receiveBtn {
            width: 60px;
            height: 32px;
            line-height: 32px;
            background: #07C160;
            color: #fff;
            border: none;
            border-radius: 4px;
            font-size: 12px;
            padding: 0;
        }
    }

    .tabs {
        display: flex;
        background: #FFFFFF;
        padding: 0 32rpx;

        .tabItem {
            flex: 1;
            text-align: center;
            padding: 24rpx 0;
            font-size: 28rpx;
            color: #666;
            position: relative;

            &.active {
                color: #333;
                font-weight: bold;

                &::after {
                    content: '';
                    position: absolute;
                    bottom: 0;
                    left: 50%;
                    transform: translateX(-50%);
                    width: 48rpx;
                    height: 4rpx;
                    background: #333;
                    border-radius: 2rpx;
                }
            }
        }
    }

    .couponItem {
        margin: 16rpx;
        background: #FFFFFF;
        border-radius: 16rpx;
        margin-bottom: 20rpx;
        position: relative;
        overflow: hidden;

        &.selectable {
            cursor: pointer;
            transition: all 0.2s;

            &:active {
                transform: scale(0.98);
            }
        }

        &.selected {
            border: 2rpx solid #07C160;
            background-color: #f0fff4;
        }

        .mainContent {
            display: flex;
            padding: 32rpx;
            position: relative;

            &::after {
                content: '';
                position: absolute;
                left: 0;
                right: 0;
                bottom: 0;
                height: 2rpx;
                background: repeating-linear-gradient(to right,
                        #E8E8E8 0rpx,
                        #E8E8E8 8rpx,
                        transparent 8rpx,
                        transparent 16rpx);
            }
        }

        .leftPart {
            flex: 1;
            padding-right: 24rpx;

            .amount {
                color: #FF4B4B;
                font-size: 48rpx;
                font-weight: bold;
                margin-bottom: 8rpx;

                .symbol {
                    font-size: 32rpx;
                }
            }

            .condition {
                color: #666;
                font-size: 24rpx;
                font-weight: bold;
                margin-bottom: 16rpx;
            }

            .name {
                color: #333;
                font-size: 28rpx;
                font-weight: 500;
            }
        }

        .rightPart {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            padding-left: 24rpx;
            padding-top: 24rpx;
            border-left: 2rpx dashed #E8E8E8;

            .status {
                font-size: 26rpx;
                color: #999;

                &.valid {
                    color: #FF4B4B;
                }
            }
        }

        .bottomInfo {
            padding: 16rpx 32rpx;
            font-size: 22rpx;
            color: #999;
        }
    }

    .emptyState {
        text-align: center;
        padding: 120rpx 0;
        color: #999;

        .emptyIcon {
            font-size: 96rpx;
            margin-bottom: 20rpx;
        }

        .emptyText {
            font-size: 28rpx;
        }
    }

    .footer {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 16rpx 32rpx;
        padding-bottom: env(safe-area-inset-bottom);
        background: #fff;
        box-shadow: 0 -2rpx 8rpx rgba(0, 0, 0, 0.05);
        z-index: 10;

        .confirmBtn {
            width: 100%;
            height: 80rpx;
            border-radius: 40rpx;
            font-size: 32rpx;
            font-weight: 500;

            &[disabled] {
                opacity: 0.6;
            }
        }
    }
}

.nearExpireTag {
    position: absolute;
    top: 0rpx;
    right: 0rpx;
    background-color: #F6CCCF;
    color: #D23151;
    font-size: 24rpx;
    padding: 4rpx 12rpx;
    border-bottom-left-radius: 16rpx;
    z-index: 1;
}

.nearExpire {
    position: relative;
}

.expireTip {
    display: inline-block;
    color: #ff4d4f; // 红色
    white-space: nowrap; // 添加不换行属性
}

.confirmDialog {
    padding: 40rpx;
    text-align: center;
    width: 500rpx;
    border-radius: 20rpx;
}

.centerPopup {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: auto !important;
    max-width: 80% !important;
    border-radius: 20rpx !important;
    height: 330rpx;
}

.confirmDialogTitle {
    font-size: 36rpx;
    font-weight: bold;
    margin-bottom: 30rpx;
    display: block;
}

.confirmDialogContent {
    font-size: 32rpx;
    color: #333;
    margin-bottom: 40rpx;
    display: block;
}

.confirmDialogButtons {
    display: flex;
    width: 100%;
}

.cancelButton {
    flex: 1;
    margin-right: 20rpx;
    height: 80rpx;
    border-radius: 40rpx;
}

.confirmButton {
    flex: 1;
    margin-left: 20rpx;
    height: 80rpx;
    border-radius: 40rpx;
}